﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;

namespace Recursos.Model
{
    public class PermisosModel
    {
        public bool verificarPermiso(string usuario, string rol)
        {
            cargarUsuarios();

            if (Roles.IsUserInRole(usuario,rol))
                return true;
            else
                return false;
            return false;

        }
        public void cargarUsuarios()
        {
            var roles = obtenerRoles();
            var usuario = new UsuarioModel();
            var usuarios = usuario.CargarUsuarios();
            var users=Roles.GetUsersInRole("Administrador");
             foreach (var miembro in usuarios)
            { 
                var rol=obtenerRolUsuario(int.Parse(miembro.Cedula.ToString()));
                if (Roles.IsUserInRole(miembro.Cedula.ToString(), rol))
                     Roles.RemoveUserFromRole(miembro.Cedula.ToString(), rol);
            }


            foreach (var rol in roles)
            {
              //  Roles.DeleteCookie();
                Roles.DeleteRole(rol.Descripcion);
                Roles.CreateRole(rol.Descripcion);
            }
            
            foreach (var miembro in usuarios)
            { 
                var rol=obtenerRolUsuario(int.Parse(miembro.Cedula.ToString()));
                Roles.AddUserToRole(miembro.Cedula.ToString(), rol);
            }
        }
        public IList<Rol> obtenerRoles()
        {
            var datacontext = new DataClassesRecursosDataContext();
            var rol = new Repository<Rol>(datacontext);
            var roles = rol.GetAll().ToList();
            return roles;

        }
        public string obtenerRolUsuario(int cedula)
        {
            var datacontext = new DataClassesRecursosDataContext();
            var rol = new Repository<RolXUsuario>(datacontext);
            var nombrerol = rol.SearchOne(s => s.Usuario.Cedula == cedula && s.Usuario.Borrado == false);
            return nombrerol.Rol.Descripcion;

        }

        public IList<Usuario> VerificarUsuario(string user, string password)
        {
            var datacontext = new DataClassesRecursosDataContext();
            var usuarios = new Repository<Usuario>(datacontext);
            var usuario = usuarios.GetAll().Where(u => u.usuario1.Equals(user)).ToList();
           return usuario;
        }
    }
}